Operaciones Matemáticas y Tipos de Datos en Python 3

Operaciones Matemáticas Básicas

TIPOS DE OPERACIONES POR ORDEN DE EJECUCIÓN

  • 1.Exponenciación
  • 2.Cambio de signo
  • 3.Multiplicación
  • 3.División
  • 3.Resto
  • 4.Suma
  • 4.Resta

In [40]:
print(2 ** 6)
print(-3)
print(2 * 6)
print(6 / 2)
print(14 % 3)
print(2 + 6)
print(6 - 2)

# Operación especial que realiza la división y solo muestra el valor entero (sin decimales)
print(14 // 3)


64
-3
12
3.0
2
8
4
4

In [41]:
# Primero se ejecuta la elevación del número 2 seis veces (64) y luego se le suma 7
print(2**6+7)

# Primero se ejecuta la multiplicación y luego la resta
print(8-6*9)

# Para clarificar las cosas se recomienda el uso de paréntesis para separar las operaciones según su orden de ejecución.
# También es necesario usarlos cuando dos operaciones tengan el mismo valor de ejecución, para obtener el resultado esperado.
# Ejemplos en el uso de los paréntesis:
print(9+1-2+3*6)
print((9+1-3+2)*6)
print(((9+1)-(3+2))*6)


71
-46
26
54
30

Variables en Python: Definición y tipos

DEFINICIÓN DE VARIABLE

  • Una variable es un espacio para almacenar datos en la memoria de un ordenador. En Python, una variable se define con la sintaxis:

      nombre_de_la_variable = valor_de_la_variable
  • Cada variable, tiene un nombre y un valor. Así podemos almacenar un valor en una variable y posteriormente podemos utilizar dicha variable en expresiones. A esta acción de almacenar un valor a una variable se denomina asignación. Los nombres de las variables en Python pueden contener caracteres alfanuméricos (empezando con una letra) a-z, A-Z, 0-9 y otros símbolos como la _. Por cuestiones de estilo, las variables suelen empezar con minúscula.

  • Algunos nombres no pueden ser usados como nombres de variables (son palabras reservadas por python):and, as, assert, break, class, continue, def, etc.


TIPOS DE VARIABLES

  • Una vez comprendido lo que es una variable hay que explicar cuantos tipos de variables existen y como se representan. En Python las variables no tienen que ser definidas previamente, ya que es un lenguaje de tipado dinámico, es decir, el es capaz de determinar que tipo de variable hemos escrito. Aún así, si existen diferentes tipos y estos son:

    • Tipo Entero (int)
      • Tipo Long (números enteros de muchas cifras)
    • Tipo Real (float)
    • Tipo String (cadena de caracteres)
    • Tipo Booleano (True o False)
    • Tipo Fecha
    • Tipo None (null)

FUNCIONES EN PYTHON

  • Ya hemos visto cómo funciona la función print. Las funciones en Python se utilizan tal y como se hace en otros lenguajes de programación. Los argumentos se encierran entre paréntesis y se separan por comas. Python proporciona funciones que podemos utilizar en las expresiones. Estas funciones se dice que están predefinidas:

    • Valor absoluto: abs
    • Valor máximo: max
    • Valor mínimo: min
    • Redondeo: round

  • Existen muchas funciones en Python, igual que en el resto de los lenguajes de programación y las iremos viendo poco a poco; pero existen unas cuantas que nos permiten hacer lo que se denomina como casting o, convertir un tipo de variable en otro

    • int() --> Transforma la variable entre parentesis en una de tipo entero
    • float() --> Transforma la variable entre parentesis en una de tipo coma flotante
    • complex() --> Transforma la variable entre parentesis en una de tipo complejo
    • str() --> Transforma la variable entre parentesis en una de tipo cadena de caracteres

In [42]:
# Los tipos de datos pueden combinarse según nos convenga sin que suponga un problema
# tipo int
sueldo_bruto = 35000
#tipo float
retenciones = 17.329
neto = sueldo_bruto-(sueldo_bruto*0.17329)

# Para concatenar variables de tipo string con variables de otro tipo, hay que convertir la variable NO string a string
# Es decir, realizar un casting de variables
print("Tu sueldo neto es de " + str(neto))


Tu sueldo neto es de 28934.85

In [43]:
# FUNCIONES Y CASTEO DE VARIABLES
# Valor absoluto
abs ( 2 - 7 )
# Valor máximo
max (1 , 5 , 8 , 7)
# Valor mínimo
min( -1 , 1 , 0 )
# Redondeo de un numero float
round( 18.6 )
# Casteo de un float a un int
int (18.6 )
# Casteo de un int a un float
float ( 1 )
# Convierte un entero a una cadena de caracteres
str ( 256568 )

# Se pueden concatenar funciones mediante el uso de comas
abs ( 2 - 7 ), max (1 , 5 , 8 , 7), min( -1 , 1 , 0 ), round( 18.6 ), int (18.6 ), float ( 1 ), str ( 256568 )


Out[43]:
(5, 8, -1, 19, 18, 1.0, '256568')


OPERACIONES CON BOOLEANOS

  • Los operadores booleanos son los habituales, AND para la conjunción, OR para la disyunción y NOT para la negación. Además dispone de los operadores habituales de comparación. Los operadores de comparación son:

    • == igual a
    • != distinto de
    • < menor que
    • <= menor o igual que
    • > mayor que
    • >= mayor o igual que


In [44]:
#  la comparación devuelve un valor lógico
a = True
b = False
print(a == b)


False

In [45]:
# Uso de AND, OR, NOT
# con AND debe cumplir las dos condiciones para devolver un TRUE, sino será FALSE
5 * 4 <= 100 and 3 > 9


Out[45]:
False

In [46]:
# con OR debe cumplir al menos una condiciones para devolver un TRUE, sino será FALSE
5 * 4 > 100 or 3 < 9


Out[46]:
True

In [47]:
# con NOT no debe cumplir ninguna condición para devolver un TRUE, sino será FALSE
not 5 * 4 > 10


Out[47]:
False
  • El valor True se corresponde con el valor entero 1, mientras que el el valor False se corresponde con el valor entero 0. Así, es posible realizar operaciones aritméticas con valores booleanos.


In [48]:
# Siendo TRUE = 1 el resultado será 5
(True + 4) * True


Out[48]:
5

In [49]:
# Siendo FALSE = 0 y TRUE = 1 el resultado será 2
(False + 2) * True


Out[49]:
2


OPERACIONES CON CADENAS DE CARACTERES

  • Mucha gente usa Python por sus capacidades para el tratamiento y procesamiento de cadenas. Se corresponde con el tipo String de otros lenguajes. Las cadenas se pueden encerrar en comillas dobles o simples. En Python 3.5 el tipo cadena es UNICODE por defecto.

    • Las cadenas se pueden comparar mediante ==, <, >, etc.
    • Las cadenas se pueden concatenar mediante +
    • Se puede multiplicar una cadena por un número
    • Se puede conocer su extensión mediante la función len(a)

  • Las cadenas largas de caracteres se encierran entre triple comillas dobles.


In [50]:
larga = """ Los Reyes Católicos fue la denominación que recibieron los esposos
Fernando II de Aragón e Isabel I de Castilla, soberanos de la Corona de
Castilla (1474-1504) y de la Corona de Aragón (1479-1516).

Los Reyes accedieron al trono de Castilla tras la Guerra de Sucesión 
Castellana (1475-1479) contra los partidarios de la princesa Juana la 
Beltraneja, hija del rey Enrique IV de Castilla. En 1479 Fernando heredó el 
trono de Aragón al morir su padre, el rey Juan II de Aragón. Isabel y Fernando
reinaron juntos hasta la muerte de ella en 1504. Entonces Fernando quedó
únicamente como rey de Aragón, pasando Castilla a su hija Juana, apodada
"la Loca", y a su marido Felipe de Austria, apodado "el Hermoso", Archiduque
de Austria, duque de Borgoña y conde de Flandes. Sin embargo Fernando no 
renunció a controlar Castilla y, tras morir Felipe en 1506 y ser declarada 
Juana incapaz, consiguió ser nombrado regente del reino hasta su muerte en 1516"""

print(larga)


 Los Reyes Católicos fue la denominación que recibieron los esposos
Fernando II de Aragón e Isabel I de Castilla, soberanos de la Corona de
Castilla (1474-1504) y de la Corona de Aragón (1479-1516).

Los Reyes accedieron al trono de Castilla tras la Guerra de Sucesión 
Castellana (1475-1479) contra los partidarios de la princesa Juana la 
Beltraneja, hija del rey Enrique IV de Castilla. En 1479 Fernando heredó el 
trono de Aragón al morir su padre, el rey Juan II de Aragón. Isabel y Fernando
reinaron juntos hasta la muerte de ella en 1504. Entonces Fernando quedó
únicamente como rey de Aragón, pasando Castilla a su hija Juana, apodada
"la Loca", y a su marido Felipe de Austria, apodado "el Hermoso", Archiduque
de Austria, duque de Borgoña y conde de Flandes. Sin embargo Fernando no 
renunció a controlar Castilla y, tras morir Felipe en 1506 y ser declarada 
Juana incapaz, consiguió ser nombrado regente del reino hasta su muerte en 1516

In [51]:
# El uso de dobles comillas en cadenas de caracteres debe respetar un formato concreto, puesto que " es un caracter especial.
# La sintáxis debe ser como en ejemplo, teniendo en cuenta que / es otro caracter especial y lo que va entre / / se representa
# tal y como se escribe integramente.
comillas = "Las \"comillas\" son caracteres epeciales"
comillas


Out[51]:
'Las "comillas" son caracteres epeciales'

In [52]:
especial = "Hay otros caracteres especiales como el salto de línea.\nSirve para representar el fín de línea en ficheros."
print(especial)


Hay otros caracteres especiales como el salto de línea.
Sirve para representar el fín de línea en ficheros.


OPERADORES DE FORMATO PARA CADENAS DE TEXTO

  • El uso del símbolo % seguido de uno o mas caracteres de formato permiten controlar con precisión la construcción de cadenas.

    • %s : ha de sustituirse por una cadena
    • %d : ha de sustituirse por un entero
    • %.2f : ha de sustituirse por un número con dos decimales


In [53]:
texto = "Cambio: %d %s son %.5f %s"
print(texto % (1, "dolar" , 0.89465444 , "euros"))
print(texto % (1, "euro", 1.11775, "dólares"))


Cambio: 1 dolar son 0.89465 euros
Cambio: 1 euro son 1.11775 dólares

In [54]:
radio = 4.323343
pi = 3.141592
area = pi * radio ** 2
print ('El área de un círculo de radio %.6f es %.6f' % (radio, area))


El área de un círculo de radio 4.323343 es 58.720422


LA VARIABLE DE TIPO FECHA

  • Python proporciona los tipos datetime, date y time en su módulo datetime. El tipo más usado es datetime.

    • datetime es el tipo que combina la fecha y la hora
    • date: almacena la fecha
    • time : tipo para la hora


In [81]:
# El formato de DATETIME es con notación americana (año, mes, dia, hora, minutos, segundos)
from datetime import datetime, date, time
dt = datetime(2011, 10, 5, 16,50,0)
print(dt.day, dt.month, dt.year)
texto = "La fecha es: %d/%d/%d"
texto2 = "Y son las: %d:%d:%d"
print(texto % (dt.day, dt.month, dt.year))
print(texto2 % (dt.hour, dt.minute, dt.second))


5 10 2011
La fecha es: 5/10/2011
Y son las: 16:50:0

In [82]:
# Un ejemplo extrayendo la fecha actual del sistema y presentandola en formato STRING
from datetime import datetime, date, time
fecha = datetime.now()
fecha.strftime("La fecha de hoy es: "'%d/%m/%Y  %H:%M:%S')


Out[82]:
'La fecha de hoy es: 24/05/2017  16:06:15'